The invention relates to electrical communication and particularly to a digital voice communication system which may use multiple voice coding rates and/or multiple forward-error-correction (FEC) coding rates.
In the last decades, progress in radio telephone communication technology and very-large scale integration (VLSI) technology has fostered widespread use of radio communication in consumer applications. Portable devices, such as mobile radio telephones, can now be produced having acceptable cost, size and power consumption. Mobile telephone communication for the consumer market started with the phone system derived from the police and rescue services and was based on an analog technology improved and optimized in the 1970""s and 1980""s. Examples of analog phone systems include Nordic Mobile Telephone (NMT) system and Total Access Communication System (TACS). Mobile phone usage increased significantly in the 1990""s with the introduction of mobile phone systems based an digital technology like Global System for Mobile Communication (GSM), Digital Advanced Mobile Phone System (D-AMPS) and Personal Digital Cellular (PDC).
Most digital wireless systems in use today utilize a time slotted system. User information (e.g., speech) is segmented, compressed, packetized and transmitted in a pre-allocated time slot. Time slots can be allocated to different users, a scheme commonly referred to as Time Division Multiple Access (TDMA). Time slots may also be allocated between alternating uplink and downlink transmissions, a scheme commonly referred to as Time Division Duplex (TDD). To improve immunity against interference and fading, time slots can be assigned to different carrier frequencies such that consecutive packets sent to the same user do not use the same carrier frequency. Because the transmitter hops to a new frequency for every new time slot, this scheme is commonly to as Frequency Hopping (FH). FH techniques may be combined with TDD techniques. An exemplary system that implements both FH and TDD techniques is the recently-introduced Bluetooth system, a commercial radio system used to provide wireless connections between portable devices like mobile phones and laptops.
Voice communication is still the dominant service for most commercial wireless systems. Cordless and cellular telephony are now widely accepted, and penetration levels exceed 30% in some developed countries. Several techniques may be used to convey speech information over digital links. In general, the following steps are followed. First, the analog speech waveform is sampled (usually at a rate of 8 kilo samples per second and the samples are digitized (i.e., the analog sample value is approximated by a binary word). The digital signal is then segmented, compressed, packetized, and transmitted over the air interface. The receiver implements the inverse processes to convert the digital signal back to a recognizable voice signal recognizable.
Prior to compression, the digital voice data is segmented. A segment of N bits that for example represent 20 ms speech is collected and buffered. Thereafter, this segment is compressed (e.g., coded) and the compressed segment is then packetized. For example, in GSM, a full-rate speech segment of 20 ms is distributed over 8 packets in 8 slots. Each time slot is about 577 microseconds (xcexcs). In case of a half-rate codec, the 20 ms speech segment is distributed over 4 packets.
The digitized speech frames are usually compressed to reduce the amount of information transmitted over the air interface. Reducing the amount of information transmitted on each voice link increases the number of voice links that can be supported in the allocated radio spectrum, thus increasing the capacity of the system. Speech compression can be carried out in various ways. In general, speech compression removes redundancies from speech information. In conventional systems, the speech rate on the air interface can range from 2.4 kb/s on satellite links to be between 8 and 13 kb/s on cellular links like D-AMPS and GSM, respectively, to 32 kb/s on DECT systems and 64 kb/s on the Bluetooth system. Some advanced systems apply multi-rate voice coders that increase or decrease the voice coding rate, depending on the interference conditions on the link. If the voice rate is reduced the excess bandwidth may be used to implement error correction protocols to make the voice information more robust against bit errors. Alternatively, the excess bandwidth may be used to increase the capacity of the system. Half-rate speech codecs used in GSM reduce the voice rate to increase the capacity of the system.
The implementation of FEC coding techniques affects system capacity and the delay over the link. Increasing the number of FEC encoding bits applied to a given link decreases the overall system capacity by increasing the data rate required on the link to support a constant voice rate connection. Because a system typically has a fixed aggregate bandwidth, increasing the data rate of a specific link decreases the overall system capacity.
The link delay is determined by the amount of time required to buffer a packet for transmission. Increasing the data rate requires the transmitter to use more time slots to support a constant voice rate connection, which, in turn, reduces the amount of time required to buffer a packet for transmission. Increasing the number of FEC encoding bits applied to a given link increases the required data rate over the link, which tends to decrease the delay over that link.
By way of example, U.S. patent application Ser. No. 08/685,069, entitled A SHORT-RANGE RADIO SYSTEM by P. Dent and J. Haartsen, the disclosure of which is incorporated here by reference, discloses a short-range radio system that uses a constant voice rate of 64 kb/s on a given link. In this system, implementing FEC with a coding rate of 2/3 (e.g., 1 extra coding bit for every 2 data bits) increases the link""s required data rate from 64 kb/s to 96 kb/s. Similarly, implementing FEC with a coding rate of 1/3 (e.g. 2 extra coding bits for every 1 data bit) increases the link""s required data rate from 64 kb/s to 192 kb/s.
In some circumstances it may be desirable to vary the FEC coding rate dynamically (e.g., during transmission over an active link). For example, when interference is experienced it may be desirable to increase the FEC coding rate to provide additional error correction protection. By contrast, when extra capacity is needed in the system it may be desirable to reduce the FEC coding rate on one or more links to generate additional capacity. The additional capacity may be used for link-related functions such as paging or handovers. Alternatively, additional capacity may be used to support additional links in the system.
Varying the FEC coding rate dynamically may cause a corresponding variation in the delay over the link. Voice transmission requires real-time transmission service. Like other real-time applications, voice transmission does not tolerate variations in delay, which may be noticeable to the listener. Accordingly, there is a need in the art for a system and method for switching between FEC coding schemes on an active voice link without causing delay variations that are detectable to a user of the voice link.
The invention provides a buffer-driven system and method for adjusting the delay on a communication links when switching between FEC coding schemes. A buffer architecture consisting of multiple buffer sections logically arranged in a ring provides a data structure for changing the delay on a communication link when switching between different coding schemes. The ring buffer includes read and write pointers that may be controlled separately to adjust the link delay when the FEC coding schemes is changed. Minimal round-trip delay may be maintained and negative effects caused by delay variations may be avoided by implementing delay variations during speech pauses.
In one aspect, the present invention provides a transmitter for a communication system. The transmitter comprises a sampler for sampling analog voice information at a predetermined sampling rate, a digitizer for converting the analog voice information to digital data representative of the analog voice information, an encoder for compressing the digital data, a ring buffer system for buffering a predetermined amount of the digital data for packetized transmission across a communication link, and a transmitter section for transmitting packets across a communication link. The ring buffer may include a plurality of independent memory sections, and the number of discrete storage locations in each independent memory section may be determined by a delay resolution of the transmitter.
In another aspect, the present invention also provides a receiver for a communication system. The receiver comprises a receiver section for receiving packets from a communication link, a ring buffer system for buffering a predetermined amount of the packetized data received from the communication link, and a decoder for decompressing the digital data. The ring buffer may include a plurality of independent memory sections, and the number of discrete storage locations in each independent memory section may be determined by a delay resolution of the receiver.
In yet another aspect, the present invention provides a method of operating a communication system. The method comprises the steps of: sampling analog voice information at a predetermined sampling rate, converting the analog voice information to digital data representative of the analog voice information, compressing the digital data, storing the compressed digital data in a ring buffer system for buffering a predetermined amount of the digital data for packetized transmission across a communication link, and transmitting packets across a communication link.
In still another aspect, the present invention provides a method, in a telecommunication system comprising ring buffers at a transmitter and receiver for storing digital data representative of voice information, for changing the delay over an active communication link, comprising the steps of: monitoring voice information at the transmitter to detect a silent period, and during a silent period, changing the relative position of the transmitter""s read pointer and write pointer. In the transmitter, the separation between the transmitter""s write pointer and the transmitter""s read pointer may be reduced to reduce the delay over the link. Alternatively, the separation between the transmitter""s write pointer and the transmitter""s read pointer may be increased to increase the delay over the link.